package com.blumov.fastbox.infrastructure.persistence.mapping;

import java.io.Serializable;

/**
 * Clase Generada para manejar el ID compuesto de la clase carrera.
 * 
 * @author fernandop
 * 
 */

public class CarreraID implements Serializable {

	private static final long serialVersionUID = 1L;

	private Integer formacionId;

	private Integer tituloId;

	private Integer institucionId;

	@Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (!(obj instanceof CarreraID)) {
			return false;
		}
		CarreraID other = (CarreraID) obj;

		if (formacionId == null) {
			if (other.formacionId != null) {
				return false;
			}
		} else if (!this.formacionId.equals(other.formacionId)) {
			return false;
		}

		if (tituloId == null) {
			if (other.tituloId != null) {
				return false;
			}
		} else if (!this.tituloId.equals(other.tituloId)) {
			return false;
		}
		if (institucionId == null) {
			if (other.institucionId != null) {
				return false;
			}
		} else if (!this.institucionId.equals(other.institucionId)) {
			return false;
		}
		return true;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((formacionId == null) ? 0 : formacionId.hashCode());
		result = prime * result + ((tituloId == null) ? 0 : tituloId.hashCode());
		result = prime * result + ((institucionId == null) ? 0 : institucionId.hashCode());
		return result;
	}

	public Integer getFormacionId() {
		return formacionId;
	}

	public void setFormacionId(Integer formacionId) {
		this.formacionId = formacionId;
	}

	public Integer getTituloId() {
		return tituloId;
	}

	public void setTituloId(Integer tituloId) {
		this.tituloId = tituloId;
	}

	public Integer getInstitucionId() {
		return institucionId;
	}

	public void setInstitucionId(Integer institucionId) {
		this.institucionId = institucionId;
	}

	public Boolean isComplete() {
		if ((getFormacionId() != null) && (getInstitucionId() != null) && (getTituloId() != null)) {
			return true;
		}
		return false;
	}

}
